Media data consumes large amounts of network bandwidth because of its voluminous nature. This presents problems for content providers that desire to distribute the media data in a secure fashion in order to prevent unauthorized consumption and uses of the media content over a network. Conventionally, content providers may elect to encrypt all the data associated with media content before the media content is streamed over a network. However, this uses considerable processor and memory resources of the content provider as well as resources associated with any intended recipients of the media data, since each recipient must decrypt the media data before it can be consumed. Accordingly, in many instances, content providers have elected not to encrypt their media data at all, thus foregoing security for improved processing and memory utilization.
In general, in order to improve media content delivery, media data is broken into smaller packets or frames that are then streamed over a network to an intended recipient. Software applications associated with the recipient's computing device will then assemble or buffer the packets to some predetermined level and immediately begin to play the media data on the recipient's computing device. In cases where the content provider has encrypted the media data, each packet or frame will be encrypted and each packet or frame must therefore be decrypted by software applications on the recipient's computing device. This unduly taxes the recipient's computing device and result in an unnecessary long initial start-up latency before the media data is played.
In a similar manner, the content provider's media servers or computing devices are heavily taxed when encryption is desired, since all the media data destined for each recipient must be encrypted before it is streamed to a recipient. This can consume large amounts of processing and memory resources associated with the content provider's media servers or computing devices.
Furthermore, in cases where the media data is video that is being streamed over the Internet, content providers attempt to achieve some efficiency by using a technique that uses key frames and difference frames. Key frames include a complete representation of a video frame, whereas difference frames include information that has changed relative to a previous or future frame in the video stream. The previous or future frame may or may not be a key frame. Yet, in these circumstances the content provider still elects to either encrypt both key frames and difference frames for purposes of security, or alternatively the content provider encrypts none of the frames. As a result, content providers and intended recipients still experience unnecessary utilization of processor, memory, and/or network bandwidth resources.
As is now apparent to one of ordinary skill in the art, there exists a need for improved techniques that can securely stream media data over a network in a more efficient manner. This need is particularly desirable for content providers that stream large media files over a network. Furthermore, the techniques should be capable of securely delivering media content to intended recipients without requiring the entire media file to be encrypted. Likewise, an intended recipient's computing device should not be unduly taxed by having to decrypt an entire media content data stream before the intended recipient can securely consume the media content.